iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
自我挑戰組

Codewars Ruby Challenge in 30 Days系列 第 16

Codewars Ruby Challenge - Day 16/30

  • 分享至 

  • xImage
  •  

學習

  1. 複習三角形的定義:在「任意兩邊和大於第三邊」,其實最需要判斷的是「最小的兩個值相加」是否能大於「最大值」
  2. min 方法可以給參數:之前都是單純用 array.min,不給參數找出最小,今天才發現這個方法可以給參數,.min(2) 指的是 找出最小的兩個值,max 也有同樣的功能

題目:

# 這是個三角形嗎?

def is_triangle?(a, b, c)
   # 實作內容
end

答案需要過以下測試:

RSpec.describe do
  it "這是個三角形嗎?" do
    expect(is_triangle?(1,2,2)).to be true
    expect(is_triangle?(7,2,2)).to be false
  end
end

我的答案

def is_triangle?(a, b, c)
  (a + b > c) && (b + c > a) && (a + c > b)
end

思路:

  1. 今天難度不在 coding,而是忘記三角形的定義XD
  2. 找到重點在「任意兩邊和大於第三邊」
  3. 想不到快速的語法,就是土法煉鋼的直接寫判斷式

龍哥建議的答案

def is_triangle?(a, b, c)
  [a, b, c].min(2).sum > [a, b, c].max
end

上一篇
Codewars Ruby Challenge - Day 15/30
下一篇
Codewars Ruby Challenge - Day 17/30
系列文
Codewars Ruby Challenge in 30 Days30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言